package ren.shinelong.controller;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import ren.shinelong.config.MySwaggerResourceProvider;
import springfox.documentation.swagger.web.*;

import java.util.List;

/**
 * 重写Swagger访问地址
 *
 * @author Tellsea
 * @date 2022/01/04
 */
@RestController
@RequestMapping("/swagger-resources")
public class SwaggerResourceController {

	private final MySwaggerResourceProvider swaggerResourceProvider;

	@Autowired
	public SwaggerResourceController(MySwaggerResourceProvider swaggerResourceProvider) {
		this.swaggerResourceProvider = swaggerResourceProvider;
	}

	@RequestMapping(value = "/configuration/security")
	public ResponseEntity<SecurityConfiguration> securityConfiguration() {
		return new ResponseEntity<>(SecurityConfigurationBuilder.builder().build(), HttpStatus.OK);
	}

	@RequestMapping(value = "/configuration/ui")
	public ResponseEntity<UiConfiguration> uiConfiguration() {
		return new ResponseEntity<>(UiConfigurationBuilder.builder().build(), HttpStatus.OK);
	}

	@RequestMapping
	public ResponseEntity<List<SwaggerResource>> swaggerResources() {
		return new ResponseEntity<>(this.swaggerResourceProvider.get(), HttpStatus.OK);
	}
}


